// vuex在category模块，来存储分类数据，提供修改和获取的函数。

import { findAllCategory } from '@/api/category'
import { topCategory } from '@/api/constants'

export default {
  namespaced: true,
  state: {
    // 存放所有的分类数据
    // list: []
    // 这个是为了处理刷新页面导航闪烁问题
    list: topCategory.map(item => ({ name: item }))
  },
  // 加载数据成功后需要修改list所以需要mutations函数
  mutations: {
    setList (state, payload) {
      state.list = payload
    },
    show (state, id) {
      const category = state.list.find(item => item.id === id)
      category.open = true
    },
    hide (state, id) {
      const category = state.list.find(item => item.id === id)
      category.open = false
    }
  },
  // 需要向后台加载数据，所以需要actions函数获取数据
  actions: {
    async getList ({ commit }) {
      const { result } = await findAllCategory()
      // console.log(result)
      // 给一级分类加open控制显示隐藏
      result.forEach(item => {
        item.open = false
      })
      // 获取数据成功，提交mutations进行数据修改
      commit('setList', result)
    }
  }
}
